Міністерство освіти і науки України
Національний університет
«ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Звіт
про виконання практичної роботи №4
з курсу «Мережеві операційні системи»
Файлова система proc
Мета роботи: поглибити знання iз файлової системи proc операцiйної системи Linux,
познайомитися iз структурою файла stat, який вiдображає стан процесу,
познайомитися iз системним викликом getpid та структурою task_struct.
Найповнiшу iнформацiю про вiртуальну файлову систему proc можна знайти в документацiї до Linux - в man 5 proc. Одним iз найважливiших файлiв системи proc є файли stat, по одному на кожен виконуваний в операцiйнiй системi процес. Цей файл мiстить всю необхiдну iнформацiю про виконуваний процес. Власне цю iнформацiю використовує команда ps(1) при формуваннi своїх результатiв.
Завдання
З допомогою команди man 5 proc познайомитися з описом файлової системи proc. Особливу увагу звернути на поля файла stat каталогiв процесiв.
Використовуючи команду man, познайомитися iз системним викликом getpid.
Використовуючи команду more чи iншi засоби, познайомитися iз структурою task_struc ,яка мiститься в заголовочному модулi /usr/include/linux/sched.h, а, також, iз функцiєю sprintf у кiнцi програми /usr/src/linux/fs/proc/array.c, яка формує рядок фалу stat для кожного процеса у файловiй системi proc.
Результат виконання завдання
Призначення пiддиректорiй та файлiв директорiї /proc
» /proc/apm: Містить інформацію про Advanced Power Management, якщо такий встановлений.
» /proc/acpi: Схожа директорія, що містить масу інформації по сучаснішому Advanced Configuration and Power Interface. Наприклад, щоб з'ясувати, чи підключений ваш ноутбук до розетки, можете застосувати команду: cat /proc/acpi/ac_adapter/ac/state, щоб отримати відповідь: “on line” або “off line“
» /proc/cmdline: Показує параметри, передані ядру при завантаженні.
» /proc/cpuinfo: Містить інформацію про процесор вашої машини.
» /proc/loadavg: Споріднений файл, показує середню завантаженість процесора; його інформація включає: використання CPU за останню хвилину, за останні 5 хвилин, і за останні 10 хвилин, а також число поточних зараз процесів.
» /proc/stat: Також видає статистику, але що відноситься до предищей завантаження машини.
» /proc/uptime: Коротенький файл, що містить два числа: скільки секунд машина працювала, і скільки секунд простоювала.
» /proc/devices: Показує все, на даний момент конфігуровані і завантажені, character і block пристрої. /proc/ide і /proc/scsi містять інформацію про IDE і SCSI пристроях.
» /proc/ioports: Містить інформацію про порти введення/висновку (I/o communications) використовуваних цими пристроями.
» /proc/dma: Показує використовувані Direct Memory Access канали.
» /proc/filesystems: Повідомляє, які файлові системи підтримуються вашим ядром.
» /proc/mounts: Перераховує всі крапки монтування, використовувані у вашій машині (виведення цього файлу вельми змахує на /etc/mtab). Аналогічно, /proc/partitions і /proc/swaps показують всі розділи і всі простори підкачки (swap space).
» /proc/fs: Якщо експортуєте файлові системи за допомогою NFS, то ця директорія містить, серед своїх численних субдиректорій і файлів, файл /proc/fs/nfsd/exports, який показує файлову систему відкриту для доступу, і права такого доступу.
» /proc/net: Служить для зберігання мережевої інформації. Опис всіх файлів в цій директорії займе дуже багато місце, скажемо лише, що вона містить /dev (кожен мережевий пристрій), декілька iptables (файрволов), файли, що відносяться до них, статистику мереж і сокетів, інформацію про бездротовий зв'язок і багато що інше.
» cmdline: Містить команду, що запустила процес, зі всіма своїми параметрами.
» cwd: Містить симлінк на поточну працюючу директорію (current working directory - CWD), посилання на виконуваний файл процесу, і посилання на його кореневу директорію.
» environ: Містить всі змінні середовища оточення для даного процесу.
» fd: Містить всі файлові де...